﻿Namespace Buchungen

    Public Class BtFormaterCreator

        Private Const PROC_UMBUCHUNG_AUF_KONTO As String = "OnlineB.-Umbuchung (Haben)"
        Private Const PROC_UEBERWEISUNG As String = "Überweisung InternetBanking"
        Private Const PROC_GA As String = "GA-Verfügung EMV"
        Private Const PROC_KARTENZAHLUNG_A As String = "POS ec-cash EMV"
        Private Const PROC_KARTENZAHLUNG_B As String = "POS electronic cash"
        Private Const PROC_LASTSCHRIFT As String = "Lastschrift ELV"
        Private Const PROC_EINZUGSERMAECHTIGUNG As String = "Einzugsermächtig.-lastschr."
        Private Const PROC_DAUERAUFTRAG As String = "Dauerüberweisung"
        Private Const PROC_UMBUCHUNG_VON_KONTO As String = "InternetBanking-Umbuchung"
        Private Const PROC_GUTSCHRIFT_A As String = "Lohn-,Gehalt-,Renten-Gutsch"
        Private Const PROC_GUTSCHRIFT_B As String = "Überweisungs-Gutschrift"
        Private Const PROC_GEWINNSPAR_EINZUG As String = "Gewinnspar-Beiträge"
        Public Sub New()
        End Sub

        Public Function GetBtFormater(ByVal vorgang As String) As IBtFormater
            Select Case vorgang
                'Case PROC_UEBERWEISUNG
                '    Return New UeberweisungFormater()
                'Case PROC_UMBUCHUNG_VON_KONTO
                '    Return New UeberweisungFormater()
                'Case PROC_GUTSCHRIFT_A
                '    Return New UmbuchungFormater()
                'Case PROC_GUTSCHRIFT_B
                '    Return New UmbuchungFormater()
                'Case PROC_GA
                '    Return New GaFormater()
                'Case PROC_KARTENZAHLUNG_A
                '    Return New KartenzahlungFormater()
                'Case PROC_KARTENZAHLUNG_B
                '    Return New KartenzahlungFormater()
                'Case PROC_LASTSCHRIFT
                '    Return New KartenzahlungFormater()
                'Case PROC_EINZUGSERMAECHTIGUNG
                '    Return New EinzugFormater()
                'Case PROC_GEWINNSPAR_EINZUG
                '    Return New EinzugFormater()
                'Case PROC_DAUERAUFTRAG
                '    Return New DauerauftragFormater()
                'Case PROC_UMBUCHUNG_AUF_KONTO
                '    Return New UmbuchungFormater()
                Case Else
                    Return New DummyFormater()
            End Select
        End Function

        Private Class DummyFormater
            Implements IBtFormater

            Public Sub New()
            End Sub

            Public Sub FillBuchung(ByRef buchung As Buchung, ByVal btSource() As String) Implements IBtFormater.FillBuchung
                'buchung.BtSource = btSource
            End Sub

        End Class



    End Class

End Namespace